/*
 * CeldaBase.h
 *
 *  Created on: Oct 26, 2013
 *      Author: javier
 */

#ifndef CELDABASE_H_
#define CELDABASE_H_

#include <stdio.h>
#include <stdlib.h>
#include "Pieza.h"
#include <string.h>
#include <iostream>
#include "../Interfaz/CeldaSDL.h"

using Golosinas::Pieza;

class CeldaBase {
public:
	CeldaBase();
	virtual ~CeldaBase();
	//virtual CeldaBase(Pieza * p, CeldaBase * CeldaAnt);
	virtual bool operator ==(CeldaBase& c) = 0;
	virtual std::string imprimir() = 0;
	virtual Pieza::color getColorGolosina()=0;
	virtual int eliminarContenido() = 0;
	virtual Pieza * pedirGolosina(int nCol) = 0;
	virtual bool intercambiarGolosina(CeldaBase& c) = 0;
	virtual Pieza * darGolosina(int nCol) = 0;
	//virtual void llenarAleatoriamente() = 0;
	virtual Pieza * getGolosina() = 0;
	virtual void setGolosina(Pieza * p);
	virtual CeldaSDL* getVista(unsigned int x, unsigned int y, unsigned int num) = 0;
	Pieza * generarPieza();
	virtual bool isVacia() = 0;
protected:
	CeldaBase * ptrCeldaAnt;
};

#endif /* CELDABASE_H_ */
